ioping コマンドを Graviton(ARM)インスタンスで利用する手順

ioping コマンドを Graviton(ARM)インスタンスで利用する手順

Clock Icon2022.12.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Graviton(ARM)プロセッサのインスタンスでディスクの I/O レイテンシーを計測するiopingを利用するまでの備忘録です。

パッケージでの提供はなくソースからコンパイルすることになりました。

koct9i/ioping: simple disk I/0 latency measuring tool

検証環境

  • ioping: version 1.3
  • OS: Amazon Linux 2
  • AMI: amzn2-ami-kernel-5.10-hvm-2.0.20221103.3-arm64-gp2
  • Instances
    • c6g.4xlarge(Gravtion 2)
    • c7g.4xlarge(Graviton 3)

コンパイル手順早見

Amazon Linux 2

sudo yum install git gcc -y
git clone https://github.com/koct9i/ioping.git
cd ioping/
make ioping

パッケージはなかったの?

README を確認すると RHEL/CentOS の提供はありませんでした。Graviton ですしなおのこと期待薄です。コンパイルして動作確認することにしました。

ioping をコンパイルする

リポジトリからソースをクローンするためにgitと C で書かれていたのでコンパイラ gcc をインストールします。ともに Amazon Linux 2 にデフォルトではインストールされていませんでした。

sudo yum install git gcc -y

ソースコードをクローンしてきます。

git clone https://github.com/koct9i/ioping.git

ディレクトリを移動してコンパイルします。

cd ioping/
make ioping

iopingファイルが生成されました。

$ ll -h
合計 204K
-rw-rw-r-- 1 ec2-user ec2-user  35K 12月 16 08:21 LICENSE
-rw-rw-r-- 1 ec2-user ec2-user 2.7K 12月 16 08:21 Makefile
-rw-rw-r-- 1 ec2-user ec2-user 2.2K 12月 16 08:21 README.md
-rw-rw-r-- 1 ec2-user ec2-user  13K 12月 16 08:21 changelog
-rwxrwxr-x 1 ec2-user ec2-user 119K 12月 16 08:22 ioping
-rw-rw-r-- 1 ec2-user ec2-user 9.2K 12月 16 08:21 ioping.1
-rw-rw-r-- 1 ec2-user ec2-user  42K 12月 16 08:21 ioping.c
-rw-rw-r-- 1 ec2-user ec2-user 1.3K 12月 16 08:21 ioping.spec
$ file ioping
ioping: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.7.0, BuildID[sha1]=32bd0fdee4e2d6668ba957f8b879e0068d173b2f, not stripped

動作確認

バージョンを確認できました。

$ ./ioping -v
ioping 1.3.3.g9471fed

-cオプションでルートボリューム(EBS)のレイテンシーを測定してみました。平均で 461.1 us でした。

$ ./ioping -c 4 -D ~
4 KiB <<< /home/ec2-user (xfs /dev/nvme0n1p1 7.98 GiB): request=1 time=1.21 ms (warmup)
4 KiB <<< /home/ec2-user (xfs /dev/nvme0n1p1 7.98 GiB): request=2 time=346.8 us
4 KiB <<< /home/ec2-user (xfs /dev/nvme0n1p1 7.98 GiB): request=3 time=283.5 us
4 KiB <<< /home/ec2-user (xfs /dev/nvme0n1p1 7.98 GiB): request=4 time=752.9 us

--- /home/ec2-user (xfs /dev/nvme0n1p1 7.98 GiB) ioping statistics ---
3 requests completed in 1.38 ms, 12 KiB read, 2.17 k iops, 8.47 MiB/s
generated 4 requests in 3.00 s, 16 KiB, 1 iops, 5.33 KiB/s
min/avg/max/mdev = 283.5 us / 461.1 us / 752.9 us / 208.0 us

EFS をマウントしていたので同様に測定しました。平均で 1.44 ms と ルートボリュームの EBS と比べるとさすがに遅い結果です。

$ sudo ./ioping -c 4 -D /mnt/test-efs-burst/
4 KiB <<< /mnt/test-efs-burst/ (nfs4 fs-0985f42875a6604a2.efs.ap-northeast-1.amazonaws.com:/ 8192.0 PiB): request=1 time=1.88 ms (warmup)
4 KiB <<< /mnt/test-efs-burst/ (nfs4 fs-0985f42875a6604a2.efs.ap-northeast-1.amazonaws.com:/ 8192.0 PiB): request=2 time=1.86 ms
4 KiB <<< /mnt/test-efs-burst/ (nfs4 fs-0985f42875a6604a2.efs.ap-northeast-1.amazonaws.com:/ 8192.0 PiB): request=3 time=1.17 ms
4 KiB <<< /mnt/test-efs-burst/ (nfs4 fs-0985f42875a6604a2.efs.ap-northeast-1.amazonaws.com:/ 8192.0 PiB): request=4 time=1.29 ms

--- /mnt/test-efs-burst/ (nfs4 fs-0985f42875a6604a2.efs.ap-northeast-1.amazonaws.com:/ 8192.0 PiB) ioping statistics ---
3 requests completed in 4.33 ms, 12 KiB read, 693 iops, 2.71 MiB/s
generated 4 requests in 3.00 s, 16 KiB, 1 iops, 5.33 KiB/s
min/avg/max/mdev = 1.17 ms / 1.44 ms / 1.86 ms / 301.8 us

iopingコマンドはソースからコンパイルして問題なく動作しました。

おわりに

Graviton(ARM)でもコンパイルすれば問題なく動きました。手元に Graviton 3 のインスタンス(c7g.4xlarge)もあったのでついでに確認しましたが同じく動作しました。

個人的に忘れたころにちょっとレイテンシー測りたいとなりそうなので書き残しました。

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.